home *** CD-ROM | disk | FTP | other *** search
Wrap
/* -- ANSI C code generated by : -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82) -- -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE -- -- Dominique COLNET and Suzanne COLLIN - colnet@loria.fr -- -- http://www.loria.fr/SmallEiffel -- */ #include "compile_to_jvm.h" /*No:CALL_PREFIX_NOT.arguments*/ T0* r180add_comment(T180* C,T0* a1){ T0* R=NULL; /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) { R=(T0*)C; } else { {T529*n=malloc(sizeof(*n)); *n=M529; r529make(n,(T0*)C,a1); R=(T0*)n; } } /*FI*/return R; } int r180to_integer(T180* C){ int R=0; T0* _rf1=NULL; _rf1=(((T180*)C))->_run_feature/*16*/; if(NULL!=(_rf1))switch(((T0*)_rf1)->id) { case 808: break; default: _rf1=NULL; };/*IF*/if ((_rf1)==((void*)(NULL))) { r180error(/*(IRF4.6start_position*/(((T406*)((T406*)((((T180*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470)); } else { R=X662to_integer((((T808*)((T808*)_rf1)))->_value/*48*/); } /*FI*/return R; } int r180is_a(T180* C,T0* a1){ int R=0; R=X291is_a(X291run_type((((T180*)C))->_result_type/*20*/),X291run_type(X662result_type(a1))); /*IF*/if (!(R)) { r683add_position(/*(IRF4.6start_position*/(((T406*)((T406*)((((T180*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/); r180error(X662start_position(a1),((T0*)ms4_662)); } /*FI*/return R; } /*No:CALL_PREFIX_NOT.is_current*/ int r180jvm_branch_if_false(T180* C){ int R=0; /*IF*/if (X291is_boolean((((T180*)C))->_current_type/*8*/)) { X662compile_to_jvm((((T180*)C))->_target/*12*/); R=r256opcode_ifne(((T256*)(oBC364code_attribute))); } else { R=r180jvm_standard_branch_if_false(C); } /*FI*/return R; } /*No:CALL_PREFIX_NOT.static_value*/ void r180make(T180* C,T0* a1,T0* a2){ {T406*n=malloc(sizeof(*n)); *n=M406; r406make(n,r180operator(),a1); C->_feature_name=(T0*)n; } r180make_call0(C,a2,(((T180*)C))->_feature_name/*24*/); } /*No:CALL_PREFIX_NOT.nb_errors*/ /*No:CALL_PREFIX_NOT.feature_name*/ /*No:CALL_PREFIX_NOT.compile_to_jvm_assignment*/ /*No:CALL_PREFIX_NOT.fz_iinaiv*/ /*No:CALL_PREFIX_NOT.arg_count*/ int r180jvm_branch_if_true(T180* C){ int R=0; /*IF*/if (X291is_boolean((((T180*)C))->_current_type/*8*/)) { X662compile_to_jvm((((T180*)C))->_target/*12*/); R=r256opcode_ifeq(((T256*)(oBC364code_attribute))); } else { R=r180jvm_standard_branch_if_true(C); } /*FI*/return R; } /*No:CALL_PREFIX_NOT.run_feature*/ /*No:CALL_PREFIX_NOT.start_position*/ void r180compile_to_jvm_old(T180* C){ X662compile_to_jvm_old((((T180*)C))->_target/*12*/); /*IF*//*AF*//*AE*/ /*FI*/} /*No:CALL_PREFIX_NOT.target*/ T0* r180to_runnable(T180* C,T0* a1){ T0* R=NULL; /*IF*/if (((((T180*)C))->_current_type/*8*/)==((void*)(NULL))) { r180to_runnable_0(C,a1); /*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((X496arg_count((((T180*)C))->_run_feature/*16*/))>(0))) { r683add_position((((T406*)((T406*)((((T180*)C))->_feature_name/*24*/))))->_start_position/*8*/); r180error(X496start_position((((T180*)C))->_run_feature/*16*/),((T0*)ms1_752)); } /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { R=(T0*)C; } /*FI*/} else { R=r180twin(C); /*[IRF3.3set_current_type*/((((T180*)(((T180*)R))))->_current_type)=(NULL); /*]*/ R=r180to_runnable(((T180*)R),a1); } /*FI*/return R; } /*No:CALL_PREFIX_NOT.result_type*/ /*No:CALL_PREFIX_NOT.is_result*/ T0* r180twin(T180* C){ T0* R=NULL; R=malloc(sizeof(*C)); *((T180*)R)=*C; return R; } /*No:CALL_PREFIX_NOT.set_current_type*/ T0* r180operator(void){ T0* R=NULL; R=((T0*)ms40_473); return R; } int r180is_static(T180* C){ int R=0; /*IF*/if (X291is_boolean(X662result_type((((T180*)C))->_target/*12*/))) { /*IF*/if (X662is_static((((T180*)C))->_target/*12*/)) { R=1; /*IF*/if ((X662static_value((((T180*)C))->_target/*12*/))==(0)) { C->_static_value_mem=1; } /*FI*/} /*FI*/} /*FI*/return R; } void r180standard_compile_target_to_jvm(T180* C){ /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T180* C1=C; r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1); }/*]*/ /*]*/ X291jvm_check_class_invariant((((T180*)C))->_result_type/*20*/); } int r180compile_to_jvm_into(T180* C,T0* a1){ int R=0; R=r180standard_compile_to_jvm_into(C,a1); return R; } /*No:CALL_PREFIX_NOT.compile_target_to_jvm*/ /*No:CALL_PREFIX_NOT.fz_07*/ int r180can_be_dropped(T180* C){ int R=0; /*IF*/if (X662can_be_dropped((((T180*)C))->_target/*12*/)) { R=X496can_be_dropped((((T180*)C))->_run_feature/*16*/); } /*FI*/return R; } /*No:CALL_PREFIX_NOT.current_type*/ /*No:CALL_PREFIX_NOT.jvm_assign*/ /*No:CALL_PREFIX_NOT.static_value_mem*/ /*No:CALL_PREFIX_NOT.is_manifest_string*/ /*No:CALL_PREFIX_NOT.is_void*/ int r180jvm_standard_branch_if_false(T180* C){ int R=0; /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T180* C1=C; r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1); }/*]*/ /*]*/ R=r256opcode_ifeq(((T256*)(oBC364code_attribute))); return R; } /*No:CALL_PREFIX_NOT.compile_to_jvm*/ void r180to_runnable_0(T180* C,T0* a1){ C->_current_type=a1; r180cpc_to_runnable(C,a1); C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T180*)C))->_run_feature/*16*/))))->_result_type/*24*/); /*IF*/if (((((T180*)C))->_result_type/*20*/)==((void*)(NULL))) { r683add_position(X496start_position((((T180*)C))->_run_feature/*16*/)); r180error((((T406*)((T406*)((((T180*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295)); } else if (X291is_like_current((((T180*)C))->_result_type/*20*/)) { C->_result_type=X662result_type((((T180*)C))->_target/*12*/); } /*FI*/} /*No:CALL_PREFIX_NOT.is_pre_computable*/ int r180jvm_standard_branch_if_true(T180* C){ int R=0; /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T180* C1=C; r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1); }/*]*/ /*]*/ R=r256opcode_ifne(((T256*)(oBC364code_attribute))); return R; } int r180use_current(T180* C){ int R=0; /*IF*//*AF*//*AE*/ /*FI*//*IF*/if (R) { } else if (X662is_current((((T180*)C))->_target/*12*/)) { R=X496use_current((((T180*)C))->_run_feature/*16*/); } else { R=X662use_current((((T180*)C))->_target/*12*/); } /*FI*/return R; } void r180cpc_to_runnable(T180* C,T0* a1){ T0* _rc=NULL; T0* _t=NULL; _t=X662to_runnable((((T180*)C))->_target/*12*/,a1); /*IF*/if ((_t)==((void*)(NULL))) { r683add_position(X662start_position((((T180*)C))->_target/*12*/)); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/C->_target=_t; _rc=X291run_class(X662result_type((((T180*)C))->_target/*12*/)); C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C); r576update((((T180*)C))->_target/*12*/,(((T180*)C))->_run_feature/*16*/); } /*No:CALL_PREFIX_NOT.us_not*/ void r180make_call0(T180* C,T0* a1,T0* a2){ C->_target=a1; C->_feature_name=a2; } void r180error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } /*No:CALL_PREFIX_NOT.isa_dca_inline_argument*/ /*No:CALL_PREFIX_NOT.fatal_error*/ int r180standard_compile_to_jvm_into(T180* C,T0* a1){ int R=0; /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T180* C1=C; r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1); }/*]*/ /*]*/ R=X291jvm_convert_to(X291run_type((((T180*)C))->_result_type/*20*/),a1); return R; } /*No:CALL_PREFIX_NOT.call_proc_call_c2jvm*/ void r180afd_check(T180* C){ T0* _running=NULL; T0* _rc=NULL; _rc=X291run_class(X662result_type((((T180*)C))->_target/*12*/)); _running=(((T355*)((T355*)_rc)))->_running/*12*/; /*IF*/if ((_running)==((void*)(NULL))) { r683add_position(X662start_position((((T180*)C))->_target/*12*/)); /*[IRF3.6append*/{T0* b1=((T0*)ms1_135); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms141_470); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683print_as_warning(((T683*)(oBC364eh))); r355set_at_run_time(((T355*)_rc)); } else if ((r396count(((T396*)_running)))>(0)) { r576update((((T180*)C))->_target/*12*/,(((T180*)C))->_run_feature/*16*/); } /*FI*/X662afd_check((((T180*)C))->_target/*12*/); /*IF*//*AF*//*AE*/ /*FI*/} /*No:CALL_INFIX_INT_DIV.arguments*/ T0* r460add_comment(T460* C,T0* a1){ T0* R=NULL; /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) { R=(T0*)C; } else { {T529*n=malloc(sizeof(*n)); *n=M529; r529make(n,(T0*)C,a1); R=(T0*)n; } } /*FI*/return R; } int r460to_integer(T460* C){ int R=0; r460error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T460*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470)); return R; } int r460is_a(T460* C,T0* a1){ int R=0; R=X291is_a(X291run_type((((T460*)C))->_result_type/*20*/),X291run_type(X662result_type(a1))); /*IF*/if (!(R)) { r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T460*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/); r460error(X662start_position(a1),((T0*)ms4_662)); } /*FI*/return R; } /*No:CALL_INFIX_INT_DIV.is_current*/ /*No:CALL_INFIX_INT_DIV.jvm_branch_if_false*/ /*No:CALL_INFIX_INT_DIV.static_value*/ void r460make(T460* C,T0* a1,T0* a2,T0* a3){ T0* _eal=NULL; /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) { r683add_position(a2); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/{T454*n=malloc(sizeof(*n)); *n=M454; r454make(n,((T0*)ms1_460),a2); C->_feature_name=(T0*)n; } {T431*n=malloc(sizeof(*n)); *n=M431; /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3)); /*]*/ _eal=(T0*)n; } r460make_call_1(C,a1,(((T460*)C))->_feature_name/*28*/,_eal); } /*No:CALL_INFIX_INT_DIV.nb_errors*/ /*No:CALL_INFIX_INT_DIV.feature_name*/ /*No:CALL_INFIX_INT_DIV.compile_to_jvm_assignment*/ /*No:CALL_INFIX_INT_DIV.fz_iinaiv*/ /*No:CALL_INFIX_INT_DIV.arg_count*/ /*No:CALL_INFIX_INT_DIV.jvm_branch_if_true*/ /*No:CALL_INFIX_INT_DIV.run_feature*/ /*No:CALL_INFIX_INT_DIV.start_position*/ void r460compile_to_jvm_old(T460* C){ X662compile_to_jvm_old((((T460*)C))->_target/*12*/); /*IF*/{/*AT*/r431compile_to_jvm_old(((T431*)((((T460*)C))->_arguments/*24*/))); } /*FI*/} /*No:CALL_INFIX_INT_DIV.target*/ T0* r460to_runnable(T460* C,T0* a1){ T0* R=NULL; T0* _tla=NULL; T0* _a=NULL; /*IF*/if (((((T460*)C))->_current_type/*8*/)==((void*)(NULL))) { r460to_runnable_0(C,a1); _a=r431to_runnable(((T431*)((((T460*)C))->_arguments/*24*/)),a1); /*IF*/if ((_a)==((void*)(NULL))) { r460error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*24*/)))/*)*/),((T0*)ms55_470)); } else { C->_arguments=_a; } /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { r431match_with(((T431*)((((T460*)C))->_arguments/*24*/)),(((T460*)C))->_run_feature/*16*/); } /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { _tla=(((T460*)C))->_result_type/*20*/; if(NULL!=(_tla))switch(((T0*)_tla)->id) { case 239: break; default: _tla=NULL; };/*IF*/if ((_tla)!=((void*)(NULL))) { C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*24*/)))/*)*/)); } /*FI*/} /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { R=(T0*)C; } /*FI*/} else { R=r460twin(C); /*[IRF3.3set_current_type*/((((T460*)(((T460*)R))))->_current_type)=(NULL); /*]*/ R=r460to_runnable(((T460*)R),a1); } /*FI*/return R; } /*No:CALL_INFIX_INT_DIV.result_type*/ /*No:CALL_INFIX_INT_DIV.is_result*/ T0* r460twin(T460* C){ T0* R=NULL; R=malloc(sizeof(*C)); *((T460*)R)=*C; return R; } /*No:CALL_INFIX_INT_DIV.set_current_type*/ /*No:CALL_INFIX_INT_DIV.operator*/ int r460is_static(T460* C){ int R=0; /*IF*/if (X291is_integer((((T460*)C))->_result_type/*20*/)) { /*IF*/if ((X662is_static((((T460*)C))->_target/*12*/))&&(X662is_static(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*24*/)))/*)*/))) { R=1; C->_static_value_mem=(X662static_value((((T460*)C))->_target/*12*/))/(X662static_value(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*24*/)))/*)*/)); } /*FI*/} /*FI*/return R; } void r460standard_compile_target_to_jvm(T460* C){ /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T460* C1=C; r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1); }/*]*/ /*]*/ X291jvm_check_class_invariant((((T460*)C))->_result_type/*20*/); } int r460compile_to_jvm_into(T460* C,T0* a1){ int R=0; R=r460standard_compile_to_jvm_into(C,a1); return R; } /*No:CALL_INFIX_INT_DIV.compile_target_to_jvm*/ /*No:CALL_INFIX_INT_DIV.fz_07*/ /*No:CALL_INFIX_INT_DIV.can_be_dropped*/ /*No:CALL_INFIX_INT_DIV.current_type*/ /*No:CALL_INFIX_INT_DIV.jvm_assign*/ /*No:CALL_INFIX_INT_DIV.static_value_mem*/ void r460make_call_1(T460* C,T0* a1,T0* a2,T0* a3){ C->_target=a1; C->_feature_name=a2; C->_arguments=a3; } /*No:CALL_INFIX_INT_DIV.is_manifest_string*/ /*No:CALL_INFIX_INT_DIV.is_void*/ int r460jvm_standard_branch_if_false(T460* C){ int R=0; /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T460* C1=C; r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1); }/*]*/ /*]*/ R=r256opcode_ifeq(((T256*)(oBC364code_attribute))); return R; } /*No:CALL_INFIX_INT_DIV.compile_to_jvm*/ void r460to_runnable_0(T460* C,T0* a1){ C->_current_type=a1; r460cpc_to_runnable(C,a1); C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T460*)C))->_run_feature/*16*/))))->_result_type/*24*/); /*IF*/if (((((T460*)C))->_result_type/*20*/)==((void*)(NULL))) { r683add_position(X496start_position((((T460*)C))->_run_feature/*16*/)); r460error((((T454*)((T454*)((((T460*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295)); } else if (X291is_like_current((((T460*)C))->_result_type/*20*/)) { C->_result_type=X662result_type((((T460*)C))->_target/*12*/); } /*FI*/} /*No:CALL_INFIX_INT_DIV.is_pre_computable*/ int r460jvm_standard_branch_if_true(T460* C){ int R=0; /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T460* C1=C; r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1); }/*]*/ /*]*/ R=r256opcode_ifne(((T256*)(oBC364code_attribute))); return R; } int r460use_current(T460* C){ int R=0; /*IF*/{/*AT*/R=r431use_current(((T431*)((((T460*)C))->_arguments/*24*/))); } /*FI*//*IF*/if (R) { } else if (X662is_current((((T460*)C))->_target/*12*/)) { R=X496use_current((((T460*)C))->_run_feature/*16*/); } else { R=X662use_current((((T460*)C))->_target/*12*/); } /*FI*/return R; } void r460cpc_to_runnable(T460* C,T0* a1){ T0* _rc=NULL; T0* _t=NULL; _t=X662to_runnable((((T460*)C))->_target/*12*/,a1); /*IF*/if ((_t)==((void*)(NULL))) { r683add_position(X662start_position((((T460*)C))->_target/*12*/)); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/C->_target=_t; _rc=X291run_class(X662result_type((((T460*)C))->_target/*12*/)); C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C); r576update((((T460*)C))->_target/*12*/,(((T460*)C))->_run_feature/*16*/); } void r460error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } /*No:CALL_INFIX_INT_DIV.isa_dca_inline_argument*/ /*No:CALL_INFIX_INT_DIV.fatal_error*/ /*No:CALL_INFIX_INT_DIV.fz_bad_argument*/ /*No:CALL_INFIX_INT_DIV.arg1*/ int r460standard_compile_to_jvm_into(T460* C,T0* a1){ int R=0; /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T460* C1=C; r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1); }/*]*/ /*]*/ R=X291jvm_convert_to(X291run_type((((T460*)C))->_result_type/*20*/),a1); return R; } /*No:CALL_INFIX_INT_DIV.call_proc_call_c2jvm*/ void r460afd_check(T460* C){ T0* _running=NULL; T0* _rc=NULL; _rc=X291run_class(X662result_type((((T460*)C))->_target/*12*/)); _running=(((T355*)((T355*)_rc)))->_running/*12*/; /*IF*/if ((_running)==((void*)(NULL))) { r683add_position(X662start_position((((T460*)C))->_target/*12*/)); /*[IRF3.6append*/{T0* b1=((T0*)ms1_135); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms141_470); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683print_as_warning(((T683*)(oBC364eh))); r355set_at_run_time(((T355*)_rc)); } else if ((r396count(((T396*)_running)))>(0)) { r576update((((T460*)C))->_target/*12*/,(((T460*)C))->_run_feature/*16*/); } /*FI*/X662afd_check((((T460*)C))->_target/*12*/); /*IF*/{/*AT*/r431afd_check(((T431*)((((T460*)C))->_arguments/*24*/))); } /*FI*/} void r158make(T158* C,T0* a1,T0* a2,T0* a3){ C->_comment=a3; C->_tag=a1; C->_expression=a2; } /*No:LOOP_VARIANT_2.nb_errors*/ /*No:LOOP_VARIANT_2.expression*/ T0* r158start_position(T158* C){ T0* R=NULL; R=X662start_position((((T158*)C))->_expression/*8*/); return R; } /*No:LOOP_VARIANT_2.comment*/ T0* r158to_runnable(T158* C,T0* a1){ T0* R=NULL; T0* _e=NULL; /*IF*/if (((((T158*)C))->_current_type/*12*/)==((void*)(NULL))) { C->_current_type=a1; _e=X662to_runnable((((T158*)C))->_expression/*8*/,a1); /*IF*/if ((_e)==((void*)(NULL))) { r158error(r158start_position(C),((T0*)ms1_856)); } else { C->_expression=_e; /*IF*/if (!(X291is_integer(X662result_type((((T158*)C))->_expression/*8*/)))) { r158error(X662start_position((((T158*)C))->_expression/*8*/),((T0*)ms2_856)); } /*FI*/} /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { R=(T0*)C; } /*FI*/} else { R=r158twin(C); /*[IRF3.3set_current_type*/((((T158*)(((T158*)R))))->_current_type)=(NULL); /*]*/ R=r158to_runnable(((T158*)R),a1); } /*FI*/return R; } T0* r158twin(T158* C){ T0* R=NULL; R=malloc(sizeof(*C)); *((T158*)R)=*C; return R; } /*No:LOOP_VARIANT_2.set_current_type*/ /*No:LOOP_VARIANT_2.tag*/ /*No:LOOP_VARIANT_2.current_type*/ int r158use_current(T158* C){ int R=0; R=X662use_current((((T158*)C))->_expression/*8*/); return R; } void r158error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } void r158afd_check(T158* C){ X662afd_check((((T158*)C))->_expression/*8*/); } /*No:DEFERRED_FUNCTION.arguments*/ T0* r649try_to_undefine(T649* C,T0* a1,T0* a2){ T0* R=NULL; X776undefine_in(a1,a2); R=/*(IRF4.4try_to_undefine_aux*/((T0*)(C))/*)*/; /*IF*/if ((R)!=((void*)(NULL))) { /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T649*)C))->_clients/*20*/); /*]*/ } else { r605fatal_undefine(((T605*)a2),a1); } /*FI*/return R; } /*No:DEFERRED_FUNCTION.is_deferred*/ /*No:DEFERRED_FUNCTION.rescue_compound*/ void r649add_into(T649* C,T0* a1){ T0* _fn=NULL; int _i=0; C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/)))); _i=1; while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) { _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/; /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) { _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/); r683add_position(X776start_position(_fn)); r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/)); r683error(((T683*)(oBC364eh)),((T0*)ms11_359)); /*[IRF3.6append*/{T0* b1=X776to_string(_fn); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683error(((T683*)(oBC364eh)),((T0*)ms67_470)); } else { r237put(((T237*)a1),(T0*)C,X776to_key(_fn)); } /*FI*/_i=(_i)+(1); } } /*No:DEFERRED_FUNCTION.end_comment*/ /*No:DEFERRED_FUNCTION.try_to_undefine_aux*/ void r649make(T649* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){ r649make_routine(C,a1,a2,a4,a5,a6); C->_result_type=a3; } /*No:DEFERRED_FUNCTION.nb_errors*/ void r649make_routine(T649* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){ r649make_e_feature(C,a1,NULL); C->_header_comment=a4; C->_arguments=a2; C->_obsolete_mark=a3; C->_require_assertion=a5; } void r649set_header_comment(T649* C,T0* a1){ /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) { C->_end_comment=a1; } /*FI*/} T0* r649start_position(T649* C){ T0* R=NULL; R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/); return R; } T0* r649to_run_feature(T649* C,T0* a1,T0* a2){ T0* R=NULL; r649check_obsolete(C); {T904*n=malloc(sizeof(*n)); *n=M904; r904make(n,a1,a2,(T0*)C); R=(T0*)n; } return R; } /*No:DEFERRED_FUNCTION.ensure_assertion*/ /*No:DEFERRED_FUNCTION.code_require*/ /*No:DEFERRED_FUNCTION.result_type*/ /*No:DEFERRED_FUNCTION.fz_03*/ /*No:DEFERRED_FUNCTION.em1*/ /*No:DEFERRED_FUNCTION.obsolete_mark*/ /*No:DEFERRED_FUNCTION.em2*/ /*No:DEFERRED_FUNCTION.set_clients*/ /*No:DEFERRED_FUNCTION.names*/ /*No:DEFERRED_FUNCTION.require_assertion*/ void r649from_effective(T649* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){ {T953*n=malloc(sizeof(*n)); *n=M953; r953make(n,se_ma855(1,a1)); C->_names=(T0*)n; } r649make(C,(((T649*)C))->_names/*8*/,a2,a3,NULL,NULL,a4); /*[IRF3.3set_ensure_assertion*/((((T649*)(C)))->_ensure_assertion)=(a5); /*]*/ C->_base_class=a6; } void r649set_rescue_compound(T649* C,T0* a1){ /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.2is_deferred*/(1)/*)*/)) { r649error(r649start_position(C),((T0*)ms6_368)); } /*FI*/C->_rescue_compound=a1; } int r649can_hide(T649* C,T0* a1,T0* a2){ int R=0; /*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) { /*IF*/if ((((((T649*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) { r683add_position(X359start_position(a1)); r649error(r649start_position(C),((T0*)ms5_359)); } /*FI*/} /*FI*//*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) { /*IF*/if ((((((T649*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) { r683add_position(X359start_position(a1)); r649error(r649start_position(C),((T0*)ms6_359)); } else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T649*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) { r683add_position(X359start_position(a1)); r649error(r649start_position(C),((T0*)ms7_359)); } /*FI*/} /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { /*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(NULL))) { /*IF*/if (!(X291is_a_in((((T649*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) { /*[IRF3.6append*/{T0* b1=((T0*)ms13_359); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683error(((T683*)(oBC364eh)),((T0*)ms67_470)); } /*FI*/} /*FI*/} /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { /*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(NULL))) { /*IF*/if (!(r31is_a_in(((T31*)((((T649*)C))->_arguments/*24*/)),X359arguments(a1),a2))) { r683add_position(X359start_position(a1)); r683add_position(r649start_position(C)); /*[IRF3.6append*/{T0* b1=((T0*)ms13_359); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683error(((T683*)(oBC364eh)),((T0*)ms67_470)); } /*FI*/} /*FI*/} /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0); return R; } /*No:DEFERRED_FUNCTION.header_comment*/ int r649is_merge_with(T649* C,T0* a1,T0* a2){ int R=0; /*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) { /*IF*/if ((((((T649*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) { r683add_position(X359start_position(a1)); r649error(r649start_position(C),((T0*)ms2_359)); } /*FI*/} /*FI*//*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) { /*IF*/if ((((((T649*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) { r683add_position(X359start_position(a1)); r649error(r649start_position(C),((T0*)ms3_359)); } else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T649*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) { r683add_position(X359start_position(a1)); r649error(r649start_position(C),((T0*)ms4_359)); } /*FI*/} /*FI*//*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(NULL))) { /*IF*/if (!(X291is_a_in((((T649*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) { r683error(((T683*)(oBC364eh)),((T0*)ms12_359)); } /*FI*/} /*FI*//*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(NULL))) { /*IF*/if (!(r31is_a_in(((T31*)((((T649*)C))->_arguments/*24*/)),X359arguments(a1),a2))) { r683add_position(X359start_position(a1)); r649error(r649start_position(C),((T0*)ms12_359)); } /*FI*/} /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0); return R; } /*No:DEFERRED_FUNCTION.fz_dot*/ /*No:DEFERRED_FUNCTION.set_ensure_assertion*/ /*No:DEFERRED_FUNCTION.first_name*/ /*No:DEFERRED_FUNCTION.clients*/ void r649collect_for(T649* C,int a1){ /*IF*/if ((a1)==(1001)) { /*IF*/if (((((T649*)C))->_require_assertion/*32*/)!=((void*)(NULL))) { /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T649*)C))->_require_assertion/*32*/))) { r522add_last(((T522*)(oBC359require_collector)),(((T649*)C))->_require_assertion/*32*/); } /*FI*/} /*FI*/} else { /*IF*/if (((((T649*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) { /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T649*)C))->_ensure_assertion/*36*/))))->_header_comment/*4*/); /*]*/ r633add_into(((T633*)((((T649*)C))->_ensure_assertion/*36*/)),oBC359assertion_collector); } /*FI*/} /*FI*/} void r649error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } /*No:DEFERRED_FUNCTION.base_class*/ void r649make_e_feature(T649* C,T0* a1,T0* a2){ C->_names=a1; C->_result_type=a2; } void r649check_obsolete(T649* C){ /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) { /*IF*/if (((((T649*)C))->_obsolete_mark/*28*/)!=((void*)(NULL))) { /*[IRF3.6append*/{T0* b1=((T0*)ms7_368); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T649*)C))->_obsolete_mark/*28*/))))->_to_string/*16*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r649warning(r649start_position(C),((T0*)ms137_470)); } /*FI*/} /*FI*/} void r649warning(T0* a1,T0* a2){ r683add_position(a1); r683warning(((T683*)(oBC364eh)),a2); } void r953make(T953* C,T0* a1){ int _i2=0; int _i=0; C->_list=a1; _i=(((T855*)((T855*)a1)))->_upper/*8*/; while (!((_i)==(0))) { _i2=r953index_of(C,r855item(((T855*)a1),_i)); /*IF*/if ((_i2)!=(_i)) { r683add_position(X776start_position(r855item(((T855*)a1),_i2))); r683add_position(X776start_position(r855item(((T855*)a1),_i))); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_953); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/_i=(_i)-(1); } } /*No:FEATURE_NAME_LIST.item*/ /*No:FEATURE_NAME_LIST.list*/ int r953has(T953* C,T0* a1){ int R=0; R=(r953index_of(C,a1))>(0); return R; } /*No:FEATURE_NAME_LIST.count*/ /*No:FEATURE_NAME_LIST.fatal_error*/ int r953index_of(T953* C,T0* a1){ int R=0; T0* _fn_key=NULL; _fn_key=X776to_key(a1); R=(((T855*)((T855*)((((T953*)C))->_list/*0*/))))->_upper/*8*/; while (!(((R)==(0))||((_fn_key)==((void*)(X776to_key(/*(IRF4.6item*/r855item(((T855*)((((T953*)C))->_list/*0*/)),R)/*)*/)))))) { R=(R)-(1); } return R; } /*No:IFTHEN.fz_is_not_boolean*/ /*No:IFTHEN.static_false*/ void r809make(T809* C,T0* a1,T0* a2){ C->_expression=a1; C->_then_compound=a2; } /*No:IFTHEN.nb_errors*/ /*No:IFTHEN.expression*/ /*No:IFTHEN.point2*/ /*No:IFTHEN.static_true*/ T0* r809to_runnable(T809* C,T0* a1){ T0* R=NULL; T0* _t=NULL; T0* _tc=NULL; T0* _e=NULL; /*IF*/if (((((T809*)C))->_run_compound/*8*/)==((void*)(NULL))) { C->_run_compound=a1; _e=X662to_runnable((((T809*)C))->_expression/*0*/,/*(IRF4.6current_type*/(((T592*)((T592*)((((T809*)C))->_run_compound/*8*/))))->_current_type/*4*//*)*/); /*IF*/if ((_e)==((void*)(NULL))) { r809error(X662start_position((((T809*)C))->_expression/*0*/),((T0*)ms8_809)); } else { C->_expression=_e; _t=X662result_type((((T809*)C))->_expression/*0*/); /*IF*/if (!(X291is_boolean(_t))) { /*[IRF3.6append*/{T0* b1=((T0*)ms9_809); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683add_type(X662result_type((((T809*)C))->_expression/*0*/),((T0*)ms73_470)); r683add_position(X662start_position((((T809*)C))->_expression/*0*/)); r683print_as_error(((T683*)(oBC364eh))); } /*FI*/} /*FI*//*IF*/if (((((T809*)C))->_then_compound/*4*/)!=((void*)(NULL))) { _tc=r592to_runnable(((T592*)((((T809*)C))->_then_compound/*4*/)),/*(IRF4.6current_type*/(((T592*)((T592*)((((T809*)C))->_run_compound/*8*/))))->_current_type/*4*//*)*/); /*IF*/if ((_tc)!=((void*)(NULL))) { C->_then_compound=_tc; } /*FI*/} /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { R=(T0*)C; } /*FI*/} else { {T809*n=malloc(sizeof(*n)); *n=M809; r809make(n,(((T809*)C))->_expression/*0*/,(((T809*)C))->_then_compound/*4*/); R=(T0*)n; } R=r809to_runnable(((T809*)R),a1); } /*FI*/return R; } /*No:IFTHEN.then_compound*/ /*No:IFTHEN.current_type*/ /*No:IFTHEN.run_compound*/ /*No:IFTHEN.non_static*/ int r809compile_to_jvm(T809* C){ int R=0; int _point1=0; /*IF*/if (X662is_static((((T809*)C))->_expression/*0*/)) { r228incr_static_expression_count(((T228*)(oBC364jvm))); /*IF*/if ((X662static_value((((T809*)C))->_expression/*0*/))==(1)) { /*IF*/if (((((T809*)C))->_then_compound/*4*/)!=((void*)(NULL))) { r592compile_to_jvm(((T592*)((((T809*)C))->_then_compound/*4*/))); } /*FI*/R=1019; } else { R=1020; } /*FI*/} else { R=1021; _point1=X662jvm_branch_if_false((((T809*)C))->_expression/*0*/); /*IF*/if (((((T809*)C))->_then_compound/*4*/)!=((void*)(NULL))) { r592compile_to_jvm(((T592*)((((T809*)C))->_then_compound/*4*/))); } /*FI*/C->_point2=r256opcode_goto(((T256*)(oBC364code_attribute))); r256resolve_u2_branch(_point1); } /*FI*/return R; } int r809use_current(T809* C){ int R=0; R=X662use_current((((T809*)C))->_expression/*0*/); /*IF*/if ((!(R))&&(((((T809*)C))->_then_compound/*4*/)!=((void*)(NULL)))) { R=r592use_current(((T592*)((((T809*)C))->_then_compound/*4*/))); } /*FI*/return R; } void r809error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } int r809compile_to_jvm_resolve_branch(T809* C){ int R=0; /*IF*/if (X662is_static((((T809*)C))->_expression/*0*/)) { /*IF*/if ((X662static_value((((T809*)C))->_expression/*0*/))==(1)) { R=1019; } else { R=1020; } /*FI*/} else { R=1021; /*IF*/if (((((T809*)C))->_point2/*12*/)>(0)) { r256resolve_u2_branch((((T809*)C))->_point2/*12*/); } /*FI*/} /*FI*/return R; } void r809afd_check(T809* C){ X662afd_check((((T809*)C))->_expression/*0*/); /*IF*/if (((((T809*)C))->_then_compound/*4*/)!=((void*)(NULL))) { r592afd_check(((T592*)((((T809*)C))->_then_compound/*4*/))); } /*FI*/} /*No:CST_ATT_INTEGER.arguments*/ T0* r689try_to_undefine(T689* C,T0* a1,T0* a2){ T0* R=NULL; X776undefine_in(a1,a2); R=r689try_to_undefine_aux(C,a1,a2); /*IF*/if ((R)!=((void*)(NULL))) { /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T689*)C))->_clients/*20*/); /*]*/ } else { r605fatal_undefine(((T605*)a2),a1); } /*FI*/return R; } /*No:CST_ATT_INTEGER.is_deferred*/ void r689add_into(T689* C,T0* a1){ T0* _fn=NULL; int _i=0; C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/)))); _i=1; while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) { _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/; /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) { _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/); r683add_position(X776start_position(_fn)); r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/)); r683error(((T683*)(oBC364eh)),((T0*)ms11_359)); /*[IRF3.6append*/{T0* b1=X776to_string(_fn); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683error(((T683*)(oBC364eh)),((T0*)ms67_470)); } else { r237put(((T237*)a1),(T0*)C,X776to_key(_fn)); } /*FI*/_i=(_i)+(1); } } T0* r689try_to_undefine_aux(T689* C,T0* a1,T0* a2){ T0* R=NULL; r683add_position(r689start_position(C)); r689error(X776start_position(a1),((T0*)ms1_321)); r605fatal_undefine(((T605*)a2),a1); return R; } void r689make(T689* C,T0* a1,T0* a2,T0* a3){ r689make_e_feature(C,a1,a2); C->_value_mem=a3; } /*No:CST_ATT_INTEGER.nb_errors*/ /*No:CST_ATT_INTEGER.set_header_comment*/ T0* r689start_position(T689* C){ T0* R=NULL; R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/); return R; } T0* r689to_run_feature(T689* C,T0* a1,T0* a2){ T0* R=NULL; T0* _rc=NULL; _rc=X291run_class(a1); R=r355at(((T355*)_rc),a2); if(NULL!=(R))switch(((T0*)R)->id) { case 808: break; default: R=NULL; };/*IF*/if ((R)==((void*)(NULL))) { {T808*n=malloc(sizeof(*n)); *n=M808; r808make(n,a1,a2,(T0*)C); R=(T0*)n; } } /*FI*/return R; } /*No:CST_ATT_INTEGER.ensure_assertion*/ /*No:CST_ATT_INTEGER.code_require*/ /*No:CST_ATT_INTEGER.result_type*/ /*No:CST_ATT_INTEGER.em1*/ /*No:CST_ATT_INTEGER.set_clients*/ /*No:CST_ATT_INTEGER.em2*/ /*No:CST_ATT_INTEGER.value*/ /*No:CST_ATT_INTEGER.require_assertion*/ /*No:CST_ATT_INTEGER.names*/ /*No:CST_ATT_INTEGER.value_mem*/ int r689can_hide(T689* C,T0* a1,T0* a2){ int R=0; /*IF*/if (((((T689*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) { /*IF*/if ((((((T689*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) { r683add_position(X359start_position(a1)); r689error(r689start_position(C),((T0*)ms5_359)); } /*FI*/} /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) { /*IF*/{/*AT*/r683add_position(X359start_position(a1)); r689error(r689start_position(C),((T0*)ms6_359)); } /*FI*/} /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { /*IF*/if (((((T689*)C))->_result_type/*12*/)!=((void*)(NULL))) { /*IF*/if (!(X291is_a_in((((T689*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) { /*[IRF3.6append*/{T0* b1=((T0*)ms13_359); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683error(((T683*)(oBC364eh)),((T0*)ms67_470)); } /*FI*/} /*FI*/} /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { /*IF*//*AF*//*AE*/ /*FI*/} /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0); return R; } /*No:CST_ATT_INTEGER.header_comment*/ int r689is_merge_with(T689* C,T0* a1,T0* a2){ int R=0; /*IF*/if (((((T689*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) { /*IF*/if ((((((T689*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) { r683add_position(X359start_position(a1)); r689error(r689start_position(C),((T0*)ms2_359)); } /*FI*/} /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) { /*IF*/{/*AT*/r683add_position(X359start_position(a1)); r689error(r689start_position(C),((T0*)ms3_359)); } /*FI*/} /*FI*//*IF*/if (((((T689*)C))->_result_type/*12*/)!=((void*)(NULL))) { /*IF*/if (!(X291is_a_in((((T689*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) { r683error(((T683*)(oBC364eh)),((T0*)ms12_359)); } /*FI*/} /*FI*//*IF*//*AF*//*AE*/ /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0); return R; } /*No:CST_ATT_INTEGER.fz_dot*/ /*No:CST_ATT_INTEGER.first_name*/ /*No:CST_ATT_INTEGER.clients*/ void r689collect_for(int a1){ /*IF*/if ((a1)==(1001)) { /*IF*//*AF*//*AE*/ /*FI*/} else { /*IF*//*AF*//*AE*/ /*FI*/} /*FI*/} void r689error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } /*No:CST_ATT_INTEGER.base_class*/ void r689make_e_feature(T689* C,T0* a1,T0* a2){ C->_names=a1; C->_result_type=a2; } /*No:BASE_CLASS.fz_is_invalid*/ /*No:BASE_CLASS.set_end_comment*/ /*No:BASE_CLASS.id*/ void r605add_feature_clause(T605* C,T0* a1){ /*IF*/if (((((T605*)C))->_feature_clause_list/*48*/)==((void*)(NULL))) { {T913*n=malloc(sizeof(*n)); *n=M913; /*[IRF3.3make*/((((T913*)(n)))->_list)=(se_ma764(1,a1)); /*]*/ C->_feature_clause_list=(T0*)n; } } else { /*[IRF3.5add_last*/r764add_last(((T764*)((((T913*)((T913*)((((T605*)C))->_feature_clause_list/*48*/))))->_list/*0*/)),a1); /*]*/ } /*FI*/} void r605set_parent_list(T605* C,T0* a1,T0* a2,T0* a3){ {T673*n=malloc(sizeof(*n)); *n=M673; r673make(n,(T0*)C,a1,a2,a3); C->_parent_list=(T0*)n; } } /*No:BASE_CLASS.is_deferred*/ int r605has_creation(T605* C,T0* a1){ int R=0; T0* _cn=NULL; T0* _bc=NULL; T0* _cc=NULL; /*IF*/if (((((T605*)C))->_creation_clause_list/*44*/)==((void*)(NULL))) { /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms7_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683add_position(X776start_position(a1)); r683print_as_error(((T683*)(oBC364eh))); } else { _cc=r391get_clause(((T391*)((((T605*)C))->_creation_clause_list/*44*/)),a1); /*IF*/if ((_cc)==((void*)(NULL))) { /*[IRF3.6append*/{T0* b1=((T0*)ms143_470); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=X776to_string(a1); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms8_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r605error(X776start_position(a1),((T0*)ms67_470)); } else { R=1; _bc=X776origin_base_class(a1); /*IF*/if ((_bc)!=((void*)(NULL))) { _cn=(((T605*)((T605*)_bc)))->_base_class_name/*24*/; R=r636gives_permission_to(((T636*)((((T583*)((T583*)_cc)))->_clients/*4*/)),_cn); } /*FI*/} /*FI*/} /*FI*//*IF*/if (!(R)) { r605error(X776start_position(a1),((T0*)ms9_605)); } /*FI*/return R; } void r605add_creation_clause(T605* C,T0* a1){ /*IF*/if (((((T605*)C))->_creation_clause_list/*44*/)==((void*)(NULL))) { {T391*n=malloc(sizeof(*n)); *n=M391; /*[IRF3.3make*/((((T391*)(n)))->_list)=(se_ma235(1,a1)); /*]*/ C->_creation_clause_list=(T0*)n; } } else { /*[IRF3.5add_last*/r235add_last(((T235*)((((T391*)((T391*)((((T605*)C))->_creation_clause_list/*44*/))))->_list/*0*/)),a1); /*]*/ } /*FI*/} /*No:BASE_CLASS.us_copy*/ /*No:BASE_CLASS.feature_clause_list*/ void r605get_started(T605* C){ C->_id=r410item(((T410*)(r605id_provider())),(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/); /*IF*/if (((((T605*)C))->_feature_clause_list/*48*/)!=((void*)(NULL))) { r913get_started(((T913*)((((T605*)C))->_feature_clause_list/*48*/)),(((T605*)C))->_feature_dictionary/*60*/); } /*FI*//*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) { r673get_started(((T673*)((((T605*)C))->_parent_list/*40*/))); } /*FI*//*IF*/if (((((T605*)C))->_end_comment/*56*/)!=((void*)(NULL))) { r393good_end(((T393*)((((T605*)C))->_end_comment/*56*/)),(((T605*)C))->_base_class_name/*24*/); } /*FI*//*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) { r863clear(((T863*)(oBC605visited))); r863add_last(((T863*)(oBC605visited)),(T0*)C); r673inherit_cycle_check(((T673*)((((T605*)C))->_parent_list/*40*/))); } /*FI*//*IF*/if (((r590all_check(((T590*)(oBC364run_control))))&&((((T605*)C))->_is_deferred/*16*/))&&(((((T605*)C))->_creation_clause_list/*44*/)!=((void*)(NULL)))) { r683add_position((((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_start_position/*4*/); r605warning(r391start_position(((T391*)((((T605*)C))->_creation_clause_list/*44*/))),((T0*)ms6_605)); } /*FI*/} int r605is_subclass_of(T605* C,T0* a1){ int R=0; /*IF*/if (r863fast_has(((T863*)((((T605*)C))->_isom/*64*/)),a1)) { R=1; } else { /*IF*/if (r605is_any(((T605*)a1))) { R=1; } else { r863clear(((T863*)(oBC605visited))); R=r605is_subclass_of_aux(C,a1); } /*FI*//*IF*/if (R) { r863add_last(((T863*)((((T605*)C))->_isom/*64*/)),a1); } /*FI*/} /*FI*/return R; } int fBC364class_any=0; T0*oBC364class_any=NULL; T0* r605class_any(void){ if (fBC364class_any==0){ T0* R=NULL; fBC364class_any=1; R=r605class_with(((T0*)ms1_473)); oBC364class_any=R;} return oBC364class_any;} int r605has_feature(T605* C,T0* a1){ int R=0; r446make(((T446*)(r605mem_fn())),a1,NULL); R=r605has(C,r605mem_fn()); return R; } int fBC605mem_fn=0; T0*oBC605mem_fn=NULL; T0* r605mem_fn(void){ if (fBC605mem_fn==0){ T0* R=NULL; fBC605mem_fn=1; {T446*n=malloc(sizeof(*n)); *n=M446; r446make(n,((T0*)ms27_605),NULL); R=(T0*)n; } oBC605mem_fn=R;} return oBC605mem_fn;} int r605is_subclass_of_aux(T605* C,T0* a1){ int R=0; /*IF*/if (r863fast_has(((T863*)(oBC605visited)),(T0*)C)) { } else { r863add_last(((T863*)(oBC605visited)),(T0*)C); /*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) { R=r673has_parent(((T673*)((((T605*)C))->_parent_list/*40*/)),a1); } else if (!(r863fast_has(((T863*)(oBC605visited)),r605class_any()))) { R=r605is_subclass_of_aux(((T605*)(r605class_any())),a1); } /*FI*/} /*FI*/return R; } /*No:BASE_CLASS.end_comment*/ void r605add_index_clause(T605* C,T0* a1){ /*IF*/if (((((T605*)C))->_index_list/*8*/)==((void*)(NULL))) { {T688*n=malloc(sizeof(*n)); *n=M688; /*[IRF3.3make*/((((T688*)(n)))->_list)=(se_ma848(1,a1)); /*]*/ C->_index_list=(T0*)n; } } else { r848add_last(((T848*)((((T688*)((T688*)((((T605*)C))->_index_list/*8*/))))->_list/*0*/)),a1); } /*FI*/} /*No:BASE_CLASS.obsolete_type_string*/ T0* r605class_with(T0* a1){ T0* R=NULL; R=r604get_class(a1); return R; } /*No:BASE_CLASS.has_creation_clause*/ void r605make(T605* C){ {T863*n=malloc(sizeof(*n)); *n=M863; r863with_capacity(n,6,1); C->_isom=(T0*)n; } C->_path=r902item((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/); {T451*n=malloc(sizeof(*n)); *n=M451; r451make_unknown(n); C->_base_class_name=(T0*)n; } {T237*n=malloc(sizeof(*n)); *n=M237; r237with_capacity(n,32); C->_feature_dictionary=(T0*)n; } } /*No:BASE_CLASS.parent_list*/ T0* r605root_procedure(T605* C,T0* a1){ T0* R=NULL; T0* _f=NULL; T0* _rc=NULL; /*IF*/if (/*(IRF4.7is_generic*/((((T605*)C))->_formal_generic_list/*28*/)!=(NULL)/*)*/) { /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms10_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683print_as_fatal_error(((T683*)(oBC364eh))); } /*FI*//*IF*/if ((((T605*)C))->_is_deferred/*16*/) { /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms11_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683print_as_fatal_error(((T683*)(oBC364eh))); } /*FI*/r446make(((T446*)(r605mem_rpn())),a1,(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_start_position/*4*/); /*IF*/if (!(r605has_creation(C,r605mem_rpn()))) { /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6extend*/{char b1='\57'; r7extend(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=a1; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms12_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683print_as_fatal_error(((T683*)(oBC364eh))); } /*FI*//*IF*/if (!(r605has_feature(C,a1))) { /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms13_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=a1; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms14_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683print_as_fatal_error(((T683*)(oBC364eh))); } /*FI*/_rc=r605run_class(C); r355set_at_run_time(((T355*)_rc)); _f=r605look_up_for(C,_rc,r605mem_rpn()); /*IF*/if ((_f)==((void*)(NULL))) { /*[IRF3.6append*/{T0* b1=((T0*)ms15_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=a1; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms16_605); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/R=_f; if(NULL!=(R))switch(((T0*)R)->id) { case 297: break; default: R=NULL; };/*IF*/if ((R)==((void*)(NULL))) { r683add_position(X359start_position(_f)); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms17_605); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/return R; } /*No:BASE_CLASS.error_vtec1*/ /*No:BASE_CLASS.path*/ /*No:BASE_CLASS.next_parent_for*/ void r605check_expanded_with(T605* C,T0* a1){ T0* _rf=NULL; /*IF*/if ((((T605*)C))->_is_deferred/*16*/) { r683add_type(a1,((T0*)ms72_470)); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_605); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*//*IF*/if (((((T605*)C))->_creation_clause_list/*44*/)!=((void*)(NULL))) { r391check_expanded_with(((T391*)((((T605*)C))->_creation_clause_list/*44*/)),a1); } /*FI*/_rf=r605expanded_initializer(C,a1); } /*No:BASE_CLASS.isom*/ /*No:BASE_CLASS.first_parent_for*/ /*No:BASE_CLASS.index_list*/ /*No:BASE_CLASS.set_heading_comment1*/ void r605inherit_cycle_check(T605* C){ int _i=0; r863add_last(((T863*)(oBC605visited)),(T0*)C); /*IF*/if ((r863first(((T863*)(oBC605visited))))==((void*)(C))) { /*[IRF3.6append*/{T0* b1=((T0*)ms19_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ _i=1; while (!((_i)>((((T863*)((T863*)(oBC605visited))))->_upper/*8*/))) { /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)((T605*)(r863item(((T863*)(oBC605visited)),_i)))))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*IF*/if ((_i)<((((T863*)((T863*)(oBC605visited))))->_upper/*8*/)) { /*[IRF3.6append*/{T0* b1=((T0*)ms20_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ } /*FI*/_i=(_i)+(1); } /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms21_605); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } else if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) { r673inherit_cycle_check(((T673*)((((T605*)C))->_parent_list/*40*/))); } /*FI*/} T0* r605new_name_of(T605* C,T0* a1,T0* a2){ T0* R=NULL; /*IF*/if ((C)==((void*)(a1))) { R=a2; } else { R=r605up_to_original(((T605*)a1),(T0*)C,a2); /*IF*/if ((R)==((void*)(NULL))) { r683add_position(X776start_position(a2)); /*[IRF3.6append*/{T0* b1=((T0*)ms143_470); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=X776to_string(a2); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms2_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)((T605*)a1)))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms3_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms4_605); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/} /*FI*/return R; } void r605set_is_expanded(T605* C){ /*IF*/if ((((T605*)C))->_is_deferred/*16*/) { /*[IRF3.6error_vtec1*/{T605* C1=C; r605error((((T451*)((T451*)((((T605*)C1))->_base_class_name/*24*/))))->_start_position/*4*/,((T0*)ms33_605)); }/*]*/ } /*FI*/C->_is_expanded=1; } int r605super_has(T605* C,T0* a1){ int R=0; /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) { /*IF*/if (r605is_general(C)) { R=0; } else { R=r605has(((T605*)(r605class_any())),a1); } /*FI*/} else { R=r673has(((T673*)((((T605*)C))->_parent_list/*40*/)),a1); } /*FI*/return R; } T0* r605up_to_original(T605* C,T0* a1,T0* a2){ T0* R=NULL; /*IF*/if (r605proper_has(C,a2)) { /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) { R=r605new_name_of_original(((T605*)a1),(T0*)C,a2); } else { R=r673up_to_original(((T673*)((((T605*)C))->_parent_list/*40*/)),a1,a2); /*IF*/if ((R)==((void*)(NULL))) { R=r605new_name_of_original(((T605*)a1),(T0*)C,a2); } /*FI*/} /*FI*/} else if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) { R=r673up_to_original(((T673*)((((T605*)C))->_parent_list/*40*/)),a1,a2); } else if (r605is_general(C)) { } else { R=r605up_to_original(((T605*)(r605class_any())),a1,a2); } /*FI*/return R; } void r605collect_invariant(T605* C,T0* a1){ /*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) { r673collect_invariant(((T673*)((((T605*)C))->_parent_list/*40*/)),a1); } /*FI*//*IF*/if (((((T605*)C))->_invariant_assertion/*52*/)!=((void*)(NULL))) { /*[IRF3.6collect_invariant*/{T0* b1=(((T605*)C))->_invariant_assertion/*52*/; r699add_into(((T699*)b1),oBC355ci_collector); }/*]*/ } /*FI*/} int fBC605mem_rpn=0; T0*oBC605mem_rpn=NULL; T0* r605mem_rpn(void){ if (fBC605mem_rpn==0){ T0* R=NULL; fBC605mem_rpn=1; {T446*n=malloc(sizeof(*n)); *n=M446; r446make(n,((T0*)ms28_605),NULL); R=(T0*)n; } oBC605mem_rpn=R;} return oBC605mem_rpn;} /*No:BASE_CLASS.set_heading_comment2*/ int r605has(T605* C,T0* a1){ int R=0; /*IF*/if (r237has(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),X776to_key(a1))) { R=1; } else { R=r605super_has(C,a1); } /*FI*/return R; } int fBC364id_provider=0; T0*oBC364id_provider=NULL; T0* r605id_provider(void){ if (fBC364id_provider==0){ T0* R=NULL; fBC364id_provider=1; {T410*n=malloc(sizeof(*n)); *n=M410; r410make(n); R=(T0*)n; } oBC364id_provider=R;} return oBC364id_provider;} T0* r605run_class(T605* C){ T0* R=NULL; T0* _type=NULL; T0* _name=NULL; T0* _rcd=NULL; _name=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/; /*IF*/if ((!((((T605*)C))->_is_deferred/*16*/))&&(!(/*(IRF4.7is_generic*/((((T605*)C))->_formal_generic_list/*28*/)!=(NULL)/*)*/))) { _rcd=oBC604run_class_dictionary; /*IF*/if (r250has(((T250*)_rcd),_name)) { R=r250at(((T250*)_rcd),_name); } else { {T657*n=malloc(sizeof(*n)); *n=M657; /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=((((T605*)C))->_base_class_name/*24*/); /*]*/ _type=(T0*)n; } R=r657run_class(((T657*)_type)); } /*FI*/} else { r605error(NULL,((T0*)ms18_605)); } /*FI*/return R; } /*No:BASE_CLASS.fz_09*/ int r605has_redefine(T605* C,T0* a1){ int R=0; /*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) { R=r673has_redefine(((T673*)((((T605*)C))->_parent_list/*40*/)),a1); } /*FI*/return R; } T0* r605look_up_for(T605* C,T0* a1,T0* a2){ T0* R=NULL; int _i=0; T0* _super_fn=NULL; T0* _fnl=NULL; T0* _cst_att=NULL; T0* _fn_key=NULL; T0* _super=NULL; _fn_key=X776to_key(a2); /*IF*/if (r237has(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),_fn_key)) { R=r237at(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),_fn_key); _super=r605super_look_up_for(C,a1,a2); /*IF*/if ((_super)!=((void*)(NULL))) { _cst_att=_super; if(NULL!=(_cst_att))switch(((T0*)_cst_att)->id) { case 380: case 588: case 398: case 689: case 554: case 580: case 835: case 118: break; default: _cst_att=NULL; };/*IF*/if ((_cst_att)!=((void*)(NULL))) { r683add_position(X359start_position(_super)); r683add_position(X359start_position(R)); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms22_605); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/_fnl=/*X359*/((T0*)(((T398*)((T398*)_super)))->_names/*8*/); _i=/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)_fnl)))->_list/*0*/))))->_upper/*8*//*)*/; while (!((_i)<(1))) { _super_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)_fnl)))->_list/*0*/)),_i)/*)*/; /*IF*/if (X776is_frozen(_super_fn)) { /*IF*/if ((X776to_key(_super_fn))==((void*)(_fn_key))) { r683add_position(X776start_position(_super_fn)); r683add_position(X359start_position(R)); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms23_605); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/} /*FI*/_i=(_i)-(1); } /*IF*/if (!(X359can_hide(R,_super,a1))) { r683add_position(X359start_position(_super)); r683add_position(X359start_position(R)); /*[IRF3.6append*/{T0* b1=((T0*)ms24_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683print_as_warning(((T683*)(oBC364eh))); } /*FI*//*IF*/if (X359is_deferred(_super)) { } else if (r605has_redefine(C,a2)) { } else { r683add_position(X359start_position(R)); r683add_position(X359start_position(_super)); /*[IRF3.6append*/{T0* b1=((T0*)ms25_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms26_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683print_as_error(((T683*)(oBC364eh))); } /*FI*/} /*FI*/} else { R=r605super_look_up_for(C,a1,a2); } /*FI*/return R; } T0* r605get_copy(T605* C){ T0* R=NULL; R=r237at(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),((T0*)ms64_473)); return R; } void r605fatal_undefine(T605* C,T0* a1){ /*[IRF3.6append*/{T0* b1=((T0*)ms34_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=X776to_string(a1); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms35_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms36_605); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } T0* r605expanded_initializer(T605* C,T0* a1){ T0* R=NULL; /*IF*/if (((((T605*)C))->_creation_clause_list/*44*/)!=((void*)(NULL))) { R=r391expanded_initializer(((T391*)((((T605*)C))->_creation_clause_list/*44*/)),a1); } /*FI*/return R; } T0* r605super_look_up_for(T605* C,T0* a1,T0* a2){ T0* R=NULL; /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) { /*IF*/if (r605is_general(C)) { R=NULL; } else { R=r605look_up_for(((T605*)(r605class_any())),a1,a2); } /*FI*/} else { R=r673look_up_for(((T673*)((((T605*)C))->_parent_list/*40*/)),a1,a2); } /*FI*/return R; } /*No:BASE_CLASS.invariant_assertion*/ void r605set_invariant(T605* C,T0* a1,T0* a2,T0* a3){ /*IF*/if (((a2)!=((void*)(NULL)))||((a3)!=((void*)(NULL)))) { {T699*n=malloc(sizeof(*n)); *n=M699; r699make(n,a1,a2,a3); C->_invariant_assertion=(T0*)n; } } /*FI*/} /*No:BASE_CLASS.fz_dot*/ /*No:BASE_CLASS.set_formal_generic_list*/ T0* r605clients_for(T605* C,T0* a1){ T0* R=NULL; /*IF*/if (r605proper_has(C,a1)) { R=X359clients(r237at(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),X776to_key(a1))); } else if (r605is_general(C)) { } else if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) { R=r605clients_for(((T605*)(r605class_any())),a1); } else { R=r673clients_for(((T673*)((((T605*)C))->_parent_list/*40*/)),a1); } /*FI*/return R; } /*No:BASE_CLASS.is_generic*/ T0*oBC605going_up_trace=NULL; /*No:BASE_CLASS.heading_comment1*/ void r605set_is_deferred(T605* C){ /*IF*/if ((((T605*)C))->_is_expanded/*20*/) { /*[IRF3.6error_vtec1*/{T605* C1=C; r605error((((T451*)((T451*)((((T605*)C1))->_base_class_name/*24*/))))->_start_position/*4*/,((T0*)ms33_605)); }/*]*/ } /*FI*/C->_is_deferred=1; } int r605proper_has(T605* C,T0* a1){ int R=0; R=r237has(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),X776to_key(a1)); return R; } T0* r605going_up(T605* C,T0* a1,T0* a2,T0* a3){ T0* R=NULL; /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) { R=r605going_up(((T605*)(r605class_any())),a1,a2,a3); } else { R=r673going_up(((T673*)((((T605*)C))->_parent_list/*40*/)),a1,a2,a3); } /*FI*/return R; } /*No:BASE_CLASS.set_obsolete_type_string*/ /*No:BASE_CLASS.formal_generic_list*/ int r605is_a_vncg(T605* C,T0* a1,T0* a2){ int R=0; /*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) { R=r673is_a_vncg(((T673*)((((T605*)C))->_parent_list/*40*/)),X291run_type(a1),X291run_type(a2)); } /*FI*/return R; } void r605collect_for(T605* C,int a1,T0* a2){ T0* _fn_key=NULL; _fn_key=X776to_key(a2); /*IF*/if (r237has(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),_fn_key)) { X359collect_for(r237at(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),_fn_key),a1); } /*FI*//*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) { /*IF*/if (r605is_general(C)) { } else { r605collect_for(((T605*)(r605class_any())),a1,a2); } /*FI*/} else { r673collect_for(((T673*)((((T605*)C))->_parent_list/*40*/)),a1,a2); } /*FI*/} void r605error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } /*No:BASE_CLASS.fatal_error*/ int r605is_any(T605* C){ int R=0; R=(((T0*)ms1_473))==((void*)((((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/)); return R; } /*No:BASE_CLASS.heading_comment2*/ int r605is_general(T605* C){ int R=0; R=(((T0*)ms14_473))==((void*)((((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/)); return R; } /*No:BASE_CLASS.feature_dictionary*/ T0* r605new_name_of_original(T605* C,T0* a1,T0* a2){ T0* R=NULL; /*IF*/if ((C)==((void*)(a1))) { R=a2; } else if (r605is_general(C)) { R=a2; } else { /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) { R=r605new_name_of(((T605*)(r605class_any())),a1,a2); } else { /*[IRF3.3clear*/((((T854*)(((T854*)(oBC605going_up_trace)))))->_upper)=(-(1)); /*]*/ R=r673going_up(((T673*)((((T605*)C))->_parent_list/*40*/)),oBC605going_up_trace,a1,a2); } /*FI*/} /*FI*/return R; } T0*oBC605visited=NULL; /*No:BASE_CLASS.base_class_name*/ /*No:BASE_CLASS.is_expanded*/ /*No:BASE_CLASS.creation_clause_list*/ /*No:BASE_CLASS.us_any*/ /*No:BASE_CLASS.us_general*/ void r605warning(T0* a1,T0* a2){ r683add_position(a1); r683warning(((T683*)(oBC364eh)),a2); } int r958id(T958* C){ int R=0; R=(((T355*)((T355*)(r958run_class(C)))))->_id/*4*/; return R; }